//******************************************************************
//系统名称：PMS2.5
//模块名称：电网资源中心中台服务
//版本信息
//版本:1.0    日期:2019年6月28日    作者:wenfabin     备注:新建
//******************************************************************

package com.sgcc.nrxt.crmdemo.constant;

/**
 * <b>概述</b>： <blockquote>Restfull接口返回类型枚举类</blockquote>
 * <p/>
 * <b>功能</b>： <blockquote>Restfull接口返回类型枚举类。</blockquote>
 * 
 * @author wenfabin
 **/
public enum ResponseCodeEnum {
    /**
     * SUCCESS:标志
     * 
     */
    SUCCESS("000000", "成功"),

    /**
     * FAILURE:标志失败
     * 
     */
    FAILURE("100000", "失败"),

    /**
     * FAILURE_CONTINUE:子线程失败,但是不影响主线程执行
     */
    FAILURE_CONTINUE("110000","子线程失败,但是不影响主线程执行"),

    RESULT_IS_NULL("100001","查询结果为空"),
    DEVICE_SAVE_FAILED("100002","台账保存失败"),
    RESULT_NOT_LOGGED("100003","登录已过期"),
    /**
     *  资产参数错误异常 200001-299999
     */
    PARAM_IS_INVALID("200002","入参json格式化失败"),


    /**
     *  资产参数错误异常 200001-299999
     */
    PARAM_ENUM_INVALID("200004","参数枚举值无效"),
    /**
     *  资产参数错误异常 20001-29999
     */
    PARAM_IS_BLANK("200003","必填字段为空"),

    /**
     *  资产参数错误异常 200001-299999
     */
    PARAM_OUTOF_LIMIT("200005","参数长度超过限制"),

    /**
     *  资产参数错误异常 20001-29999
     */
    PARAM_NUMBERFORMAT_FAULT("200006","数字格式化异常"),

    /**
     *  资产参数错误异常 20001-29999
     */
    PARAM_DATEFORMAT_FAULT("200007","日期格式化异常"),
    /**
     *  资产参数错误异常 20001-29999
     */
    PARAM_VALUE_FAULT("200008","查询的fieldName不存在"),
    /**
     *  数据库错误异常 30001-39999
     */
    DB_OPERATE_FAILED("300000","数据库操作失败"),

    /**
     *  数据库错误异常 30001-39999
     */
    DB_DUPLICATE_KEY("300001","数据库主键重复"),

    /**
     *  数据库错误异常 30001-39999
     */
    SQL_PARSE_FAILED("300002","sql语句解析失败"),
    /**
     * 主键不存在
     */
    DB_EXIST_KEY("300003", "对应主键不存在"),

    /**
     *  远程调用 40001-49999
     */
    RPC_CALL_FAILED("400001","dubbo远程服务调用失败"),

    /**
     *  远程调用 40001-49999
     */
    REST_CALL_FAILED("400002","REST服务调用失败"),

    /**
     * 正在分析中
     */
    IN_ANALYSIS("500000","正在分析中"),

    /**
     * 解析失败
     */
    FAIL_ANALYSIS("500001","解析失败"),

    /**
     *  远程调用 40001-49999
     */
    DIAGRAM_CALL_FAILED("400003","图形服务返回失败，请稍后重试");

    /**
     * type:枚举项对应的整数值
     * 
     */
    private final String type;
    /**
     * desc:枚举项说明
     * 
     */
    private final String desc;

    /**  
     * 创建一个新的实例 ResponseCodeEnum.  
     *  
     * @param type 枚举整型值
     * @param desc  描述
     */
    private ResponseCodeEnum(String type, String desc) {
        this.type = type;
        this.desc = desc;
    }

    public String getValue() {
        return this.type;
    }

    public String getDesc() {
        return this.desc;
    }

    /**
     * <b>功能</b>：<br/>
     * 根据枚举整型值查找枚举项
     * 
     * @param type 枚举整形值
     * @return 返回匹配的枚举对象或者null
     */
    public static ResponseCodeEnum findByValue(String type) {
        for (ResponseCodeEnum code : ResponseCodeEnum.values()) {
            if (code.type .equals(type) ) {
                return code;
            }
        }
        return null;
    }

}
